package com.hhxy.session.servlet;

import com.hhxy.session.pojo.Book;

import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
import java.io.IOException;
import java.io.PrintWriter;
import java.util.List;

/**
 * @author ghp
 * @date 2022/9/26
 * @Title
 * @description 用于显示所有购买过的图列表
 */
@WebServlet("/cartServlet")
public class CartServlet extends HttpServlet {
    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        this.doGet(request, response);
    }

    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        //存储购物车对象
        List<Book> cart = null;
        //用于标记用户是否买过商品
        boolean purFlag = true;
        //获得用户的session，false属性：有Session就不创建，没有就创建；true属性：不管有没有都创建一个Session
        HttpSession session = request.getSession(false);
        //判断session是否为空
        if (session == null) {
            // 如果session为null，purFlag置为false
            purFlag = false;
        } else {
            // 获得用户购物车
            cart = (List) session.getAttribute("cart");
            // 如果用的购物车为null，purFlag置为false
            if (cart == null) {
                purFlag = false;
            }
        }

        //设置响应数据的编码格式
        response.setContentType("text/html;charset=utf-8");
        PrintWriter pw = response.getWriter();
        //判断用户是否购过图书
        if (!purFlag) {
            //如果purFlag为false，表明用户没有购买图书 重定向到ListBookServlet页面
            pw.write("对不起！您还没有购买任何商品！<br>");
            response.sendRedirect("/day04_Fifth/listBookServlet");
        } else {
            //如果purFlag为true，用户购买过图书，像网页展示购买的图书信息
            pw.write("您购买的图书有：<br>");
            double price = 0;
            for (Book book : cart) {
                pw.write(book.getName() + "<br>");
            }
        }
    }
}